version 13
#delimit;
clear all;
set more off;
capture log close;


global strformat "%8.3f";

capture program drop sig_p;
program sig_p;
   args obj_var point_est_var point_sd_var p_val row_id_var row_num;
   local point_est `point_est_var';
   local point_sd `point_sd_var';
   if `p_val' > 0.1 {;
      replace `obj_var' = string(`point_est', "$strformat") if `row_id_var' == `row_num';
      };
   if `p_val' > 0.05 & `p_val' <= 0.1  {;
      replace `obj_var' = string(`point_est', "$strformat")+"*" if `row_id_var' == `row_num';
      };
   if `p_val' > 0.01 & `p_val' <= 0.05  {;
      replace `obj_var' = string(`point_est', "$strformat")+"**" if `row_id_var' == `row_num';
      };
   if `p_val' <= 0.01 {;
      replace `obj_var' = string(`point_est', "$strformat")+"***" if `row_id_var' == `row_num';
      };
   replace `obj_var' = "<" + string(`point_sd', "$strformat") + ">" + " " if `row_id_var' == `row_num' + 1;
   end;


*enter directory name here;

use "$dir/ReStat_children.dta", clear;

		
	
global fu_child_controls_cm
	"control_fu_child_age control_fu_female
	missing_fu_child_age missing_fu_female";
		
global fu_hh_controls_cm
	"control_fu_adults control_fu_hh_head_edu control_fu_hh_head_occ_farmer 
	control_fu_total_land control_fu_household_size
	missing_fu_adults missing_fu_hh_head_edu missing_fu_hh_head_occ_farmer 
	missing_fu_total_land missing_fu_household_size";


gen row_num = _n;

forvalues i=0/25 {;
	generate col`i' = "";
};

local row = 4;
sort row_num;
order col0-col25;


foreach var of varlist 
	urdu_*_pct
	math_*_pct {;
	
	replace col0 = "`var'" if row_num == `row';
	
	su `var' if pooled_treatment == 0 & fu_child_level == 1 & fu_young_child == 1 [aw=hh_weight];
	replace col2 = string(r(mean), "$strformat") if row_num == `row';	
	replace col2 = "(" + string(r(sd), "$strformat") + ")" if row_num == `row'+1;	
	
	regress `var' pooled_treatment 
		if fu_child_level == 1 & fu_young_child == 1 [pw=hh_weight], cluster(villcode);
	test pooled_treatment;
	sig_p col4 _b[pooled_treatment] _se[pooled_treatment] r(p) row_num `row';

	regress `var' pooled_treatment 
		$fu_child_controls_cm 
		if fu_child_level == 1 & fu_young_child == 1 [pw=hh_weight], cluster(villcode);
	test pooled_treatment;
	sig_p col5 _b[pooled_treatment] _se[pooled_treatment] r(p) row_num `row';
	
	regress `var' pooled_treatment 
		$fu_child_controls_cm $fu_hh_controls_cm 
		if fu_child_level == 1 & fu_young_child == 1 [pw=hh_weight], cluster(villcode);
	test pooled_treatment;
	sig_p col6 _b[pooled_treatment] _se[pooled_treatment] r(p) row_num `row';
	
	xi: regress `var' pooled_treatment 
		$fu_child_controls_cm $fu_hh_controls_cm i.bl_district 
		if fu_child_level == 1 & fu_young_child == 1 [pw=hh_weight], cluster(villcode);
	test pooled_treatment;
	sig_p col7 _b[pooled_treatment] _se[pooled_treatment] r(p) row_num `row';
	
	
	xi: ivreg2 `var' (fu_child_enrolled = pooled_treatment) 
		$fu_child_controls_cm $fu_hh_controls_cm i.bl_district 
		if fu_child_level == 1 & fu_young_child == 1 [pw=hh_weight], cluster(villcode);
	test fu_child_enrolled;
	sig_p col9 _b[fu_child_enrolled] _se[fu_child_enrolled] r(p) row_num `row';
	
	
	
	local row = `row' + 3;

};


local row = `row' + 1;


outsheet col0-col9 using "$dir/Table B3 test scores by question type.csv" if
	row_num < `row', comma replace;
